package com.codi.bus.core.resultModel;

import com.codi.base.util.MoneyUtils;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;

/*
 * Author : wangzhenhao
 * Date : 2016/12/09
 */
public class CashChangeResult extends BaseResult {

    private static final long serialVersionUID = 1L;

    // 基金代码
    private String fundCode;

    // 基金名称
    private String fundName;

    // 银行名称
    private String bankName;

    // 银行卡号
    private String bankAccount;

    //银行英文编码
    @Getter
    @Setter
    private String bankCode;


    // 可用份额
    private BigDecimal enableShare;

    // 交易账号
    private String tradeAccount;

    // 资金方式
    private String capitalMode;


    // 最低持有份额
    private BigDecimal minHoldShares;

    // 最低赎回份额
    private BigDecimal minValue;

    //联行号
    @Getter
    @Setter
    private String branchBank;

    //支行名称
    @Getter
    @Setter
    private String branchBankName;

    /**
     * 快速赎回
     */
    // 每人每天最高提现金额
    private BigDecimal maxValueForFastSell;

    /**
     * 普通赎回
     */
    // 每人每天最高提现金额
    private BigDecimal maxValueForSell;

    // spy 2017-11-2 09:29:51
    // 单笔限额1000万，单日上限5000万，单日次数限制5次
    // 单笔限额
    @Getter
    @Setter
    private BigDecimal fastRedeemSingleDealMaxValue = new BigDecimal(-1);

    // 单日限额
    @Getter
    @Setter
    private BigDecimal fastRedeemDayDealMaxValue = new BigDecimal(-1);

    // 剩余可用单日限额
    @Getter
    @Setter
    private BigDecimal fastRedeemRetainDayDealMaxValue = new BigDecimal(-1);

    // 单日次数限制()
    @Getter
    @Setter
    private int fastRedeemTotalCountPerDay = -1;

    // 剩余可用次数
    @Getter
    @Setter
    public int fastRedeemRetainCountPerDay = -1;

    //T0赎回文案
    @Setter
    @Getter
    private String walletString;

    //机构快速赎回 时间文案
    @Setter
    @Getter
    private String fastRedeemTime;

    @Getter
    @Setter
    private String shareType;


    public String getTradeAccount() {
        return tradeAccount;
    }

    public void setTradeAccount(String tradeAccount) {
        this.tradeAccount = tradeAccount;
    }

    public String getCapitalMode() {
        return capitalMode;
    }

    public void setCapitalMode(String capitalMode) {
        this.capitalMode = capitalMode;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }


    public BigDecimal getMinHoldShares() {
        return minHoldShares;
    }

    public void setMinHoldShares(BigDecimal minHoldShares) {
        this.minHoldShares = minHoldShares;
    }

    public BigDecimal getMinValue() {
        return minValue;
    }

    public void setMinValue(BigDecimal minValue) {
        this.minValue = minValue;
    }

    /**
     * 快速赎回
     */
    public BigDecimal getMaxValueForFastSell() {
        return maxValueForFastSell;
    }

    public void setMaxValueForFastSell(BigDecimal maxValueForFastSell) {
        this.maxValueForFastSell = maxValueForFastSell;
    }

    /**
     * 普通赎回
     */
    public BigDecimal getMaxValueForSell() {
        return maxValueForSell;
    }

    public void setMaxValueForSell(BigDecimal maxValueForSell) {
        this.maxValueForSell = maxValueForSell;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public String getFundCode() {
        return fundCode;
    }

    public void setFundCode(String fundCode) {
        this.fundCode = fundCode;
    }

    public String getFundName() {
        return fundName;
    }

    public void setFundName(String fundName) {
        this.fundName = fundName;
    }

    public BigDecimal getEnableShare() {
        return enableShare;
    }

    public void setEnableShare(BigDecimal enableShare) {
        this.enableShare = enableShare;
    }

    // 可用份额字符串
    public String getEnableSharesString() {
        return MoneyUtils.formatMoney(enableShare, 2);
    }
}
